#ifndef C_LDTW_H
#define C_LDTW_H

#include <stddef.h>

/* 返回路径节点 */
typedef struct
{
    int i, j;
} PathNode;

/* 一次性返回路径与距离 */
typedef struct
{
    PathNode *path; /* 需外部 free */
    int path_len;
    double dist;
} LDTWResult;

/* 计算带长度限制的 DTW */
LDTWResult ldtw_path(const double *s1, size_t len1,
                     const double *s2, size_t len2,
                     int max_length);
/* 时间加权版本：beta=0 等价于原函数 */
LDTWResult ldtw_path_tw(const double *s1, size_t len1,
                        const double *s2, size_t len2,
                        int max_length,
                        double beta,
                        const double *gap_max_vec);
#endif
